package tests.comunicacao;

import base.Atendimento;
import comunicacao.ConexaoBD;
import comunicacao.InterfaceAtendimentoBD;
import java.sql.SQLException;
import java.util.Vector;

import org.junit.*;

public class InterfaceAtendimentoBDTest {

	private static ConexaoBD con;
	private static InterfaceAtendimentoBD a;
	
	@BeforeClass
	public static void globalInit() throws ClassNotFoundException, SQLException {
		con = new ConexaoBD();
		a = new InterfaceAtendimentoBD(con);
	}
	
	@AfterClass
	public static void globalDeinit() {
		a = null;
		con = null;
	}

	@Ignore
	@Test
	public void ConsultarAtendimento() throws SQLException {
		int r = a.criarAtendimento(3, 3);
		Atendimento at = a.consultarAtendimento(3, 3);
		
		Assert.assertEquals(r, 1);
		Assert.assertEquals(at.getMedico().getID(), 3);
		Assert.assertEquals(at.getPaciente().getID(), 3);
				
		Vector<Atendimento> va = a.consultarAtendimentos(2);
		Assert.assertNotNull(va);
		Assert.assertEquals(va.size(), 2);
	}

	@Test
	public void CriarAtendimento() throws SQLException {
		int r = a.criarAtendimento(4, 10);
		Assert.assertEquals(r, 1);
		Assert.assertNotNull(a.consultarAtendimento(4, 10));
	}

	@Test
	public void EditarAtendimento() throws SQLException {
		Atendimento at1 = a.consultarAtendimento(4, 10);
		Assert.assertNotNull(at1);
		
		int r = a.editarAtendimento(at1.getID(), 2);
		Assert.assertEquals(r, 1);
		
		Atendimento at2 = a.consultarAtendimento(2, 10);
		Assert.assertNotNull(at2);
		Assert.assertEquals(at1.getID(), at2.getID());
	}

	@Test
	public void RemoverAtendimento() throws SQLException {
		Atendimento at = a.consultarAtendimento(2, 10);
		Assert.assertNotNull(at);
		
		int r = a.removerAtendimento(2, 10);
		Assert.assertEquals(r, 1);
		
		at = a.consultarAtendimento(2, 10);
		Assert.assertNull(at);
	}
}